1. Technical Field
Example embodiments of the present invention relates to a video coding method and, more particularly, to methods and apparatuses for encoding and decoding motion vectors in a video codec in which multiple references pictures are allowed.
2. Related Art
With the development of telecommunication technologies including the Internet, video communication is increasing in addition to text communication and voice communication. To satisfy the various desires of consumers with existing text-based communication is insufficient. Thus, multimedia service capable of covering various types of information such as text, image, music, etc. is increasing. Multimedia data requires a high-capacity storage medium due to its enormous volume, and a wide bandwidth when transmitted. Thus, to transmit the multimedia data including text, video, and audio, it is essential to use a compression coding technique.
A fundamental principle of compressing data is based on a process of eliminating the redundancy from data. The data can be compressed by eliminating spatial redundancy referring to repetition of the same color or object in an image, temporal redundancy referring to little or nothing of variation between neighboring frames in a moving picture frame or successive repetition of same sounds in audio or psycho-visual redundancy referring to dullness of human vision and sensation to high frequencies.
To standardize the technique for compressing a moving picture, there appear various video coding standards such as Moving Picture Experts Group-2 (MPEG-2), MPEG-4, H.264 and so on. As shown in FIG. 1, all video coding technologies employ a technique called block motion estimation in order to eliminate temporal redundancy between neighboring video frames.
For example, to encode a certain block 12 within a current frame 10, a reference frame 15, whose position is different in time from that of the current frame 10, is searched for a block 17 matched with the block 12. Then, a residual between the block 12 of the current frame 10 and the block 17 of the reference frame 15 is obtained. This residual is encoded to enhance encoding efficiency. Here, a displacement between the blocks is indicated by a motion vector. Motion compensation for the reference frame 15 is made by the motion vector.
In this manner, the motion estimation process of obtaining the motion vector of the current block 12 takes a considerable amount of calculation in an entire video encoding process. Particularly, H.264, the recent video coding standard, employs a variable block size ranging from 4×4 to 16×16 in inter-frame coding or inter-picture coding. This technique shows that coding efficiency is considerably improved compared to a conventional technique of coding a macroblock (MB) having a fixed size, but it has a disadvantage in that the amount of calculation is increased tremendously because the process of searching for the motion vector should be performed on all the blocks having a variable block size. This increase in the amount of calculation may become a problem, particularly, in applications required to reduce the time difference between an encoder and a decoder such as real-time broadcasting, real-time video conferencing, and so on.
Thus, many studies are being made of the motion estimation process to reduce the amount of calculation in order to provide fast motion estimation. As a part of these studies, an early termination technique, a hierarchical search method, or a block mode skip method is known.
FIG. 2 shows a concept of searching for a motion vector on the basis of a search initial value (search initial location). In general, motion estimation is a process of searching a reference frame 20 for a region that is best matched with a current block (i.e. a block intended to search for a current motion vector) while moving within a predetermined search region 22 in a unit of pixel or sub-pixel. Here, a displacement between the current block and the searching region is nothing but a motion vector of the current block.
However, if it is possible to know a predicted motion vector of the current block before the motion estimation is performed, it is possible to reduce the amount of calculation of the motion estimation by performing the motion estimation adopting a location 24 to which the predicted motion vector points from a location 26 of the block as the search initial value. This is based on the prediction that the final determined motion vector will have a small difference from the predicted motion vector. Further, if it is possible to know the predicted motion vector, it is possible to reduce the amount of coding of the initial value of the motion vector as well as the motion vector per se. In typical video coding technologies, the motion vector is not directly transmitted to a motion vector decoding apparatus, but the difference between the motion vector and the predicted motion vector is transmitted to the motion vector decoding apparatus. This difference is called a motion vector difference (MVD). It is natural that, as the predicted motion vector becomes similar to a real motion vector, MVD approaches 0 (zero), and coding efficiency is improved.